package com.zoweunion.mechanic.util.hefeng;

import org.springframework.context.annotation.Configuration;

/**
 * 和风天气常量
 */
@Configuration
public class HeFengConstants {


    public enum ErrorCode {
        /**
         * 状态、描述
         */
        ok("ok", "数据正常"),
        invalid_key("invalid key", "无效的key，请检查你的key是否输入以及是否输入有误"),
        invalid_key_type("invalid key type", "你输入的key不适用于当前获取数据的方式，即SDK的KEY不能用于Web API或通过接口直接访问，反之亦然"),
        invalid_param("invalid param", "无效的参数，请检查你传递的参数是否正确、完整"),
        bad_bind("bad bind", "错误的绑定，例如绑定的package name、bundle id或IP地址不一致的时候"),
        no_data_for_this("location no data for this location", "该城市/地区没有你所请求的数据"),
        no_more_requests("no more requests", "超过访问次数，需要等到当月最后一天24点（免费用户为当天24点）后进行访问次数的重置或升级你的访问量"),
        no_balance("no balance", "没有余额，你的按量计费产品由于余额不足或欠费而不能访问，请尽快充值"),
        too_fast("too fast", "超过限定的QPM，请参考QPM说明"),
        dead("dead", "无响应或超时，接口服务异常请联系我们"),
        unknown_location("unknown location", "没有你查询的这个地区，或者地区名称错误"),
        permission_denied("permission denied", "无访问权限，你没有购买你所访问的这部分服务"),
        sign_error("sign error", "签名错误，请参考签名算法");

        private String status;
        private String description;

        ErrorCode(String status, String description) {
            this.status = status;
            this.description = description;
        }

        public static String getDescriptionByStatus(String status) {
            ErrorCode[] errorCodes = values();
            for (ErrorCode errorCode : errorCodes) {
                if (errorCode.getStatus().equals(status)) {
                    return errorCode.getDescription();
                }
            }
            return null;
        }

        public String getStatus() {
            return status;
        }

        public void setStatus(String status) {
            this.status = status;
        }

        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }
    }
}
